package registnet.base;

/**
 * Defines an interface for objects that handles processes which involves a set of courses.
 */
public interface ICoursePeer {
	
	/**
	 * Loads a list of courses from a defined source.
	 */
	public void load();
	
	/**
	 * Adds a course to the list of courses.
	 * @param course
	 */
	public void addCourse(Course course);
	
	/**
	 * Computes the rank of all the courses in the list of courses.
	 */
	public void rankCourses();
	
	/**
	 * Sorts the list of courses in ascending order based on the course's rank.
	 */
	public void sortCoursesByRank();

}
